package br.com.sap.controle;

import java.util.List;

import br.com.sap.modelo.Categoria;
import br.com.sap.modelo.Tipo;
import br.com.sap.modelo.enums.EnumSituacao;
import br.com.sap.persistencia.servico.CategoriaServico;
import br.com.sap.persistencia.servico.ServicoGenerico;
import br.com.sap.persistencia.servico.TipoServico;



public class TipoControle extends ControleGenerico<Tipo> {

	private Tipo tipo = new Tipo();
	private TipoServico tipoServico = new TipoServico();
	private CategoriaServico categoriaServico = new CategoriaServico();
	private ControleGenerico<Tipo> controleGenerico;
	
	
	
	
	public CategoriaServico getCategoriaServico() {
		return categoriaServico;
	}


	public void setCategoriaServico(CategoriaServico categoriaServico) {
		this.categoriaServico = categoriaServico;
	}
	
	
	public Tipo getTipo() {
		return tipo;
	}


	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}




	public TipoServico gettipoServico() {
		return tipoServico;
	}




	public void setTipoServico(TipoServico tipoServico) {
		this.tipoServico = tipoServico;
	}

	public ControleGenerico<Tipo> getControleGenerico() {
		return controleGenerico;
	}

	public void setControleGenerico(
			ControleGenerico<Tipo> controleGenerico) {
		this.controleGenerico = controleGenerico;
	}

	@Override
	public ServicoGenerico<Tipo> getServico() {
		// TODO Auto-generated method stub
		return this.tipoServico;
	}
	
	public List<Categoria> getListarCategoria() {
		return categoriaServico.getLista();
	}

	public List<Tipo> getListartipos() {
		
			tipoServico.camposProcura.limpar();
			this.getServico().camposProcura.add(("situacao"), "1", true);
			this.getServico().camposProcura.setCondicional("and");			
			return tipoServico.procura();
	}
	
	public List<Tipo> getListartiposDesativadas() {
		
			tipoServico.camposProcura.limpar();
			this.getServico().camposProcura.add(("situacao"), "0", true);
			this.getServico().camposProcura.setCondicional("and");
			return tipoServico.procura();
	}
	
	public List<Tipo> procuraTipo(String descricao, String situacao){
	
		
		tipoServico.camposProcura.limpar();
		
		if(descricao != ""){
		this.getServico().camposProcura.add(("descricao"), descricao, true);
		}
		this.getServico().camposProcura.add(("situacao"), situacao, true);	
		this.getServico().camposProcura.setCondicional("and");
		return tipoServico.procura();
		
	}
	
	public int registrarTipo(Tipo tipo){
		int retorno;
		retorno = 0;
		if(antesProcurar(tipo)){	
		
			if(persiste(tipo)){
				retorno = 1;
				}else{
					retorno = 2;
				}
			
		}
		
		
		return retorno;
		
	}
	
	public int desativarTipo(Tipo tipo){
		int retorno;
		retorno = 0;
		
		tipo.setSituacao(EnumSituacao.INATIVO);
		
			if(persiste(tipo)){
				
				retorno = 1;
				
				}else{
					
					retorno = 2;
					
				}
			
		
		
		
		return retorno;
		
	}
	
	

	
	
}
